# app/models/vnf.py
# -*- coding: utf-8 -*-
'''
@File    :   vnf.py
@Time    :   2024/11/26
@Author  :   Wang Xi
@Version :   1.0
@Desc    :   VNF模型
'''

# 导入SQLAlchemy中用于声明性定义模型所需的模块
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, Float

# 使用declarative_base创建一个基类，所有映射到数据库表的类都继承自这个基类
base = declarative_base()

# 定义Vnf类，继承自Base
class Vnf(base):
    # 指定这个类映射到哪个表，这里指定为'vnfs'
    __tablename__ = 'vnfs'
    
    # 定义id列，使用Integer类型，设置为主键
    id = Column(Integer, primary_key=True)
    
    # 定义name列，使用String类型，设置为唯一，不允许为空
    name = Column(String, unique=True, nullable=False)

    # 定义type列，使用String类型，不允许为空
    type = Column(String, nullable=False)

    # 定义ip列，使用String类型，不允许为空
    ip = Column(String, nullable=False)

    # 定义port列，使用String类型，设置为唯一，不允许为空
    port = Column(Integer, unique=True, nullable=False)

    # 定义cpu列，使用Float类型，不允许为空
    cpu = Column(Float, nullable=False)

    # 定义ram列，使用Float类型，不允许为空
    ram = Column(Float, nullable=False)

    # 定义rom列，使用Float类型，不允许为空
    rom = Column(Float, nullable=False)
